package com.icss.regie.weixin.beans;

import com.icss.regie.weixin.beans.commons.BasicRequest;
import com.riversoft.weixin.mp.template.Data;
import com.riversoft.weixin.mp.template.MiniProgram;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;

/**
 * 发送模板消息
 *
 * url和miniprogram都是非必填字段，若都不传则模板无跳转； 
 * 若都传，会优先跳转至小程序。 开发者可根据实际需要选择其中一种跳转方式即可。
 * 当用户的微信客户端版本不支持跳小程序时，将会跳转至url；
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ReplyTmplMsgRequest", namespace = "http://beans.weixin.regie.icss.com", propOrder = {})
public class ReplyTmplMsgRequest extends BasicRequest {

    /**
     * 发送给谁 ，通常情况是openid
     */
    private String toUser;
    /**
     * 要使用的模板ID
     */
    private String templateId;
    /**
     * 用户点击发送的消息后跳转的URL地址
     */
    private String url;
    /**
     * 用户点击发送的消息后跳转的小程序
     */
    private MiniProgram miniProgram;
    /**
     * 模板对应的数据项
     */
    private Map<String, Data> datas;

    /**
     * 发送给谁 ，通常情况是openid
     *
     * @return the toUser
     */
    public String getToUser() {
        return toUser;
    }

    /**
     * 发送给谁 ，通常情况是openid
     *
     * @param toUser the toUser to set
     */
    public void setToUser(String toUser) {
        this.toUser = toUser;
    }

    /**
     * 要使用的模板ID
     *
     * @return the templateId
     */
    public String getTemplateId() {
        return templateId;
    }

    /**
     * 要使用的模板ID
     *
     * @param templateId the templateId to set
     */
    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    /**
     * 用户点击发送的消息后跳转的URL地址
     *
     * @return the url
     */
    public String getUrl() {
        return url;
    }

    /**
     * 用户点击发送的消息后跳转的URL地址
     *
     * @param url the url to set
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 用户点击发送的消息后跳转的小程序
     *
     * @return the miniProgram
     */
    public MiniProgram getMiniProgram() {
        return miniProgram;
    }

    /**
     * 用户点击发送的消息后跳转的小程序
     *
     * @param miniProgram the miniProgram to set
     */
    public void setMiniProgram(MiniProgram miniProgram) {
        this.miniProgram = miniProgram;
    }

    /**
     * 模板对应的数据项
     *
     * @return the datas
     */
    public Map<String, Data> getDatas() {
        return datas;
    }

    /**
     * 模板对应的数据项
     *
     * @param datas the datas to set
     */
    public void setDatas(Map<String, Data> datas) {
        this.datas = datas;
    }
}
